{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Dynamic Process: Condorcet Profiles (5.2.1, 5.2.2, C.6)" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:19.913368Z", "start_time": "2021-02-09T13:45:14.786491Z" } }, "outputs": [], "source": [ "import numpy as np\n", "from matplotlib import pyplot as plt\n", "from poisson_approval import *" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:19.924338Z", "start_time": "2021-02-09T13:45:19.917359Z" } }, "outputs": [], "source": [ "N_SAMPLES = 10000\n", "N_MAX_EPISODES = 1000" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:19.946279Z", "start_time": "2021-02-09T13:45:19.928328Z" } }, "outputs": [], "source": [ "rand_profile = RandConditional(\n", " factory=RandProfileHistogramUniform(n_bins=1),\n", " test=is_condorcet,\n", " n_trials_max=None\n", ")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.706932Z", "start_time": "2021-02-09T13:45:19.949273Z" } }, "outputs": [], "source": [ "results = monte_carlo_fictitious_play(\n", " factory=rand_profile,\n", " n_samples=N_SAMPLES,\n", " n_max_episodes=N_MAX_EPISODES,\n", " voting_rules=VOTING_RULES,\n", " init='random_tau',\n", " monte_carlo_settings=[\n", " MCS_PROFILE,\n", " MCS_TAU_INIT,\n", " MCS_CONVERGES,\n", " MCS_FREQUENCY_CW_WINS,\n", " MCS_WELFARE_LOSSES,\n", " ],\n", " file_save='sav/condorcet_profiles.sav',\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Convergence (5.2.1)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.721895Z", "start_time": "2021-02-09T13:45:20.709926Z" } }, "outputs": [ { "data": { "text/plain": [ "0.9997" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "results[APPROVAL]['mean_converges']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Condorcet Consistency (5.2.2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Ratios" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.753807Z", "start_time": "2021-02-09T13:45:20.724885Z" } }, "outputs": [ { "data": { "text/plain": [ "0.999644653864655" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "float(results[APPROVAL]['mean_frequency_cw_wins'])" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.821898Z", "start_time": "2021-02-09T13:45:20.758795Z" } }, "outputs": [ { "data": { "text/plain": [ "0.6605" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "float(results[PLURALITY]['mean_frequency_cw_wins'])" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.851391Z", "start_time": "2021-02-09T13:45:20.826306Z" } }, "outputs": [ { "data": { "text/plain": [ "0.49510742323833473" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "float(results[ANTI_PLURALITY]['mean_frequency_cw_wins'])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Profiles where the CW is not elected with probability 1, under AV" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Proportion of profiles where the CW is not elected with probability 1, under Approval:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.886147Z", "start_time": "2021-02-09T13:45:20.855229Z" } }, "outputs": [ { "data": { "text/plain": [ "0.0006" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.sum(np.array(results[APPROVAL]['frequency_cw_wins']) < 1) / results[APPROVAL]['n_samples']" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:20.978898Z", "start_time": "2021-02-09T13:45:20.893126Z" } }, "outputs": [], "source": [ "counter_examples = [\n", " (profile, tau_init) \n", " for (profile, tau_init, frequency_cw_wins) in zip(\n", " results[APPROVAL]['profile'], \n", " results[APPROVAL]['tau_init'], \n", " results[APPROVAL]['frequency_cw_wins']\n", " )\n", " if frequency_cw_wins < 1\n", "]" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2021-02-05T09:50:16.584966Z", "start_time": "2021-02-05T09:50:16.575473Z" } }, "source": [ "Let us use a larger number of episodes to examine the counter-examples found above :" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:21.255508Z", "start_time": "2021-02-09T13:45:20.982887Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Convergence in 13966 episodes\n", "The Condorcet winner is elected\n", "\n", "Convergence in 43 episodes\n", "Candidates winning frequencies: {a: 1}\n", "Condorcet winner: b\n", "\n", "Convergence in 39 episodes\n", "Candidates winning frequencies: {b: 1}\n", "Condorcet winner: a\n", "\n", "Convergence in 1311 episodes\n", "The Condorcet winner is elected\n", "\n", "Convergence in 50 episodes\n", "Candidates winning frequencies: {a: 1}\n", "Condorcet winner: b\n", "\n", "Convergence in 56282 episodes\n", "The Condorcet winner is elected\n", "\n" ] } ], "source": [ "LARGE_N_MAX_EPISODES = 1000000\n", "for profile, tau_init in counter_examples:\n", " results_p = profile.fictitious_play(\n", " init=tau_init, \n", " n_max_episodes=LARGE_N_MAX_EPISODES,\n", " perception_update_ratio=one_over_log_t_plus_one,\n", " ballot_update_ratio=one_over_log_t_plus_one,\n", " winning_frequency_update_ratio=one_over_log_t_plus_one,\n", " )\n", " if not results_p['converges']:\n", " print('No convergence, even after %s episodes' % LARGE_N_MAX_EPISODES)\n", " else:\n", " print('Convergence in %s episodes' % results_p['n_episodes'])\n", " cw = list(profile.condorcet_winners)[0]\n", " if results_p['d_candidate_winning_frequency'][cw] == 1:\n", " print('The Condorcet winner is elected')\n", " else:\n", " print('Candidates winning frequencies: %s' % results_p['d_candidate_winning_frequency'])\n", " print('Condorcet winner: %s' % profile.condorcet_winners)\n", " print()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Welfare Losses (C.6)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-02-09T13:45:24.276126Z", "start_time": "2021-02-09T13:45:21.259130Z" } }, "outputs": [ { "data": { "image/png": "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Mb1SSqlT0WC9638B9HcI2R58TkWhhoYGpk+fTkJCApdcckmk4yillIqgwZrr840xx53QNcZsEJH88EVSJyItLY29e/dGOoZSSqkoMNiRfPwgzyWc7CBKKaWUOrkGK/LrReT2vg+KyK1Y49crpZRSKooN1lx/D/C8iHyRY0V9EeACrgtzLqWUUkqdoAGLvDGmCjhPRJYBc4IPv2KMeWdUkimllFLqhIQyC91qY8yvgjct8IN4/vnnERF279495Lp9Z45bsWIFDQ0NIb9WSUkJc+bMGXrFEN188808++yzgDV5zs6dOwH4yU9+ctJeQyml1OgKZYIaFaJVq1axZMkSnnrqqSHX7VvkX331VdLS0sKYLvRpbB988EFmzZoFaJFXSqlYNpKx66Paf6/7b3bXDX0kPRwzMmbw/bO+P+g6LS0trF27ltWrV3P11VezcuVKioqKWLlyJWlpaezevZszzzyTP//5z/zqV7/qNT3s6tWryc/PZ8OGDd1D03ZZuXIl+/fvp7y8nMOHD/PP//zP3H577/6Qjz/+OBs2bODBBx8E4Morr+R73/seS5cuJSkpie9+97u88cYb/PSnP+Wdd97hpZdeor29nfPOO4/f/OY3iEiv/a1YsYKf//znPPvss90T78yePZvJkyeTlZXFd77zHQD+7d/+jbFjx3L33Xef6FuslFIqDPRI/iR54YUXWL58OdOnTycjI4NNmzYBsHnzZu677z527tzJgQMHWLt27XHTww5l27ZtvPLKK3z44Yf86Ec/oqKiIuRcra2tzJkzh48//pglS5Zw1113sX79erZv3057e3v3/Pb9ue+++7on3nnyySe59dZbeeKJJwAIBAI89dRTfPGLXww5i1JKqdF1yh3JD3XEHS6rVq3innvuAeCmm25i1apVXHHFFZx11lnk5ORgs9mYP38+JSUlA05MM5BrrrmGhIQEEhISWLZsGevWreue1nYodrudG264oXt59erV3H///bS1tVFXV8fs2bO56qqrQtpXfn4+mZmZbN68maqqKhYsWEBmZuawvhellFKjJ6xFXkSWA78E7MDvjDH39Xlegs+vwJrC9mZjzKZwZgqH2tpa3nnnHbZv346I4Pf7ERFWrFhBXFxc93p2ux2fzzfovh566CF++9vfAtZ5euC45vS+y4NNYxsfH4/dbu9+/Jvf/CYbNmwgLy+P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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_welfare_losses(results, 'utilitarian_welfare_losses')\n", "plt.savefig('img/fUWelfareCW.png', dpi=600, bbox_inches=\"tight\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.7" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": true, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }